gtk_init: Fix debug flags handling when a display is already open
authorChristoph Reiter <creiter@src.gnome.org>
Sun, 18 Feb 2018 09:34:52 +0000 (10:34 +0100)
committerChristoph Reiter <creiter@src.gnome.org>
Mon, 19 Feb 2018 18:24:00 +0000 (19:24 +0100)
The code assigning the display to the debug_flags struct gets only
called when the default display changes, which never happens
when there already is one.

This makes it call the change callback in case a display is already
there.

The same fix was applied to gtk3 in !26 where calling gdk_init()
before gtk_init() would trigger this case. With gdk_init() gone
in master this is less likely to happen, but still possible
if gdk_display_open() is called before gtk_init().

See https://gitlab.gnome.org/GNOME/pygobject/issues/166

gtk/gtkmain.c

index 2f1ee97b9f326ed685ab5ee32929956763765de4..0508754dd0f1da266728a2431da978740b5d3252 100644 (file)
@@ -662,7 +662,7 @@ do_post_parse_initialization (void)
 
   display_manager = gdk_display_manager_get ();
   if (gdk_display_manager_get_default_display (display_manager) != NULL)
-    _gtk_accessibility_init ();
+    default_display_notify_cb (display_manager);
 
   g_signal_connect (display_manager, "notify::default-display",
                     G_CALLBACK (default_display_notify_cb),